home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / fade into you / getting there / Apps / MOO-1.7.6.src / README < prev   
Text File  |  1994-11-02  |  8KB  |  153 lines

  1.             Getting Started With LambdaMOO
  2.             ------------------------------
  3.  
  4. LambdaMOO has been successfully compiled and run on several machines and
  5. operating systems; a table appears at the end of this file.
  6.  
  7. People compiling on any of these machines should only need to do the following:
  8.   -- run the command `sh configure'; it will take a couple of minutes, trying
  9.      out various features of your operating system, figuring out which of a
  10.      long list of known quirks must be patched around for your system.  It will
  11.      produce a fair amount of output as it runs, every line of it beginning
  12.      with the word `checking'.  When it's finished poking at your system, it
  13.      will print out a little note concerning which networking options will work
  14.      on your particular machine.  Make a note of these, since they'll constrain
  15.      your choice of edits in the next step.
  16.   -- edit the file `options.h', choosing the options appropriate to your needs
  17.      and your local configuration.  In particular, this is where you specify
  18.      the kind of networking the server should support, choosing from the
  19.      options printed by `configure' in the first step.
  20.   -- type `make'; the code should compile without any errors or warnings.  The
  21.      only exceptions are warnings about code in files from your own system; an
  22.      amazing number of systems contain header files and other files that don't
  23.      compile without warnings.  Obviously, I can't do anything about these
  24.      files, so just ignore such warnings.
  25. That should do it, you'll now have a working LambdaMOO server.
  26.     [EXCEPTION: If you've defined NETWORK_PROTOCOL to be NP_LOCAL in
  27.     `options.h', then you will also need a specialized client program
  28.     for connecting to the server.  Type either `make client_bsd' or
  29.     `make client_sysv', depending on how you defined NETWORK_STYLE, to
  30.     create the appropriate client program.]
  31.  
  32. If you're not on one of these configurations, you may still get lucky.  You
  33. will need the following things:
  34.  
  35.   -- You need a C compiler that is at least mostly compliant with the ANSI C
  36.      standard.  Old-style, purely Kernighan & Ritchie compilers will fail
  37.      miserably.  The more closely it adheres to the standard, the less trouble
  38.      you'll have.
  39.   -- You need support for signals, forking, and pausing, preferably according
  40.      to the POSIX standard; if you haven't got POSIX, then I might be ready for
  41.      your particular non-standard system anyway.
  42.   -- You need an implementation of the crypt() password-encryption function
  43.      that comes with all BSD UNIX operating systems.
  44.  
  45. If you've got all of this, then try the above procedure (i.e., type 
  46. `sh configure', edit `options.h', and type `make') and there's a good chance
  47. that it will just work.  If so, please let me know so that I can add your
  48. machine and operating system to the table at the end of this file.  If not,
  49. feel free to send me mail and I'll help you try to make it work.
  50.  
  51. To start the server, use a command like this:
  52.  
  53.     ./moo INITIAL-DB-FILE CHECKPOINT-DB-FILE
  54.  
  55. where INITIAL-DB-FILE is the name of an existing LambdaMOO database file and
  56. CHECKPOINT-DB-FILE is the filename the server should use for its periodic
  57. checkpoints of the current DB, which is otherwise kept only in its memory.  IT
  58. IS STRONGLY ADVISED that you not use the same file name for both
  59. INITIAL-DB-FILE and CHECKPOINT-DB-FILE; this could, in the event of a crash,
  60. leave you with no useful DB file at all.
  61.  
  62. Included with the release is a little shell script called `restart' that
  63. handles the server start-up in a more convenient way.  You type a command like
  64.  
  65.     ./restart FOOBAR
  66.  
  67. and the script does the following:
  68.  
  69.   -- If FOOBAR.db.new exists, then
  70.        + Rename FOOBAR.db to FOOBAR.db.old, and start a background process to
  71.      compress that file.
  72.        + Rename FOOBAR.db.new to FOOBAR.db
  73.   -- Start the server in the background, reading the initial DB from FOOBAR.db
  74.      and writing the checkpoints to FOOBAR.db.new.  The server's log of network
  75.      connections, checkpoints, and errors will be put into FOOBAR.log.  If
  76.      there was already a file named FOOBAR.log, its old contents are appended
  77.      to FOOBAR.log.old and FOOBAR.log is removed first.
  78.  
  79. The `restart' script is really the only good way to start up the server; it's
  80. all I ever use for LambdaMOO itself.
  81.  
  82. For most of the networking options supported by the server, both the `moo' and
  83. `restart' commands take an optional argument for changing some network
  84. connection information; type just `./moo' to see what the argument is for the
  85. option you've chosen.  The only one for which you're at all likely to want to
  86. override the default concerns the NP_TCP networking options; for them, the
  87. optional argument is the TCP port number on which the server should listen for
  88. new connections (the default is 7777).
  89.  
  90. The only database included with the release now is Minimal.db.  Getting from
  91. there to something usable is possible, but tedious; see README.Minimal for
  92. details.  Feel free to log into LambdaMOO (lambda.parc.xerox.com [13.2.116.36],
  93. port 8888) and ask Haakon and/or Lambda for hints.
  94.  
  95. Also available for FTP from parcftp.xerox.com is a version of LambdaCore.db, a
  96. snapshot of the core pieces of the LambdaMOO database.  New snapshots are made
  97. at irregular intervals as sufficient changes happen to the LambdaMOO database.
  98.  
  99. The LambdaMOO Programmer's Manual is also available for FTP from the same
  100. place.  It comes in plain-text, Texinfo, and Postscript formats.
  101.  
  102. Finally, if you're putting up a LambdaMOO server, you should probably be a
  103. member of the MOO-Cows mailing list.  Send email to MOO-Cows-Request@Xerox.Com
  104. to get yourself added to the list.
  105.  
  106.     Pavel Curtis
  107.     aka Lambda
  108.     aka Haakon
  109.     Archwizard of LambdaMOO
  110.  
  111.     Pavel@Xerox.Com
  112.  
  113. ------------------------------------------------------------------------------
  114.  
  115.          How to Add New Built-In Functions to the MOO Language
  116.          -----------------------------------------------------
  117.  
  118. Implement your functions by following the many examples in the distributed
  119. server code (e.g., in the file `numbers.c').  Then follow the directions in the
  120. comment at the top of functions.c.
  121.  
  122. NOTE that, in this release, I'm not making any guarantees about what interfaces
  123. within the server will remain stable.  Thus, any code you add to the server may
  124. well be horribly broken by a future release.  Your best bet for avoiding this
  125. cruel fate is to send that code to me and convince me to add it to the
  126. distribution; that way, I'll fix up your code for each new release.
  127.  
  128. ------------------------------------------------------------------------------
  129.  
  130.        Some Machines On Which Version 1.7.0 of LambdaMOO Has Run
  131.        ---------------------------------------------------------
  132.  
  133.     Hardware        Operating System    Networking Options    Compiler
  134.     --------        ----------------    ------------------    --------
  135.     DECstation:        Ultrix 4.1        SU, BT, BL, VL          GCC and Vendor's
  136.                 CMU Mach 2.6    SU, BT, BL          GCC
  137.     Motorola 88K    SysV/88 Rel. R32V2    SU, BT, BL, VL          GCC
  138.     NeXT        NeXT Mach        SU, BT, BL          Vendor's (= GCC)
  139.     SGI Iris        IRIX 4.0.{1,5}    SU, BT, BL, VL          Vendor's
  140.     Sun 4/SPARC:    SunOS 4.1.{1,2,3}    SU, BT, BL, VT, VL    GCC
  141.                 SunOS 5.0        SU, BT, BL, VT, VL    Vendor's
  142.  
  143.  
  144. Key to `Networking Options' codes:
  145.  
  146.     Code    NETWORK_PROTOCOL    NETWORK_STYLE
  147.     ----    ----------------    -------------
  148.      SU           NP_SINGLE            -----
  149.      BT           NP_TCP        NS_BSD
  150.      BL           NP_LOCAL        NS_BSD
  151.      VT           NP_TCP        NS_SYSV
  152.      VL           NP_LOCAL        NS_SYSV
  153.